package view;

import java.awt.GridLayout;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

/**
 * A interface do jogo é apenas uma tela com uma matriz de botões, representando
 * o tabuleiro do jogo.
 */
public class UserInterface {

	/**
	 * O frame principal do jogo, onde fica o tabuleiro.
	 */
	private JFrame frame = new JFrame("Four-in-a-Row Game");
	
	private SlotButton[][] buttons;

	/**
	 * Constrói e exibe o tabuleiro do jogo, adicionando um listener a cada
	 * botão.
	 */
	public UserInterface(int rows, int cols, ActionListener listener) {
		frame.setLayout(new GridLayout(rows, cols));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		buttons = new SlotButton[rows][cols];
		for (int i = 0; i < rows; i++) {
			for (int j = 0; j < cols; j++) {
				SlotButton bt = new SlotButton(i, j);
				bt.addActionListener(listener);
				buttons[i][j] = bt;
				frame.add(bt);
			}
		}
		frame.pack();
		frame.setVisible(true);
	}
	
	public SlotButton[][] getSlots() {
		return buttons;
	}

}
